package com.jeasonzhao.commons.chart.impl;

public class HighChartsFactory
{
//    private static final String TEMPLAT = "$(document).ready(function(){\r\n"
//        + "var ${GUID} = new Highcharts.Chart(${CONTENT});"
//        + "\r\n})";
//    private HighChartsFactory()
//    {
//        super();
//    }
//
//    public static final String toHtml(Chart chart,String containerId)
//    {
//        if(null == chart)
//        {
//            return null;
//        }
//        String guid = "chart"; //Guid.newGuid();
//        JSONClass options = new JSONClass();
//        options.set("chart",(new JSONClass()).set("renderTo",containerId));
//        if(Algorithms.notEmpty(chart.getTitle()))
//        {
//            options.set("title",(new JSONClass()).set("text",chart.getTitle()));
//        }
//        if(Algorithms.notEmpty(chart.getSubTitle()))
//        {
//            options.set("subtitle",(new JSONClass()).set("text",chart.getSubTitle()));
//        }
//        options.set("credits",(new JSONClass()).set("enabled",false));
////        options.set("lang",(new JSONClass()).set(
////            "loading","正在加载" //Loading message
////            ,"printButtonTitle","打印"
////            ,"weekdays",new JSONArray("周日","周一","周二","周三","周四","周五","周六")));
//
//        if(null!=chart.getCategories())
//        {
//            JSONArray aryCategory=new JSONArray();
//            for(String s : chart.getCategories())
//            {
//                aryCategory.add(s);
//            }
//            options.set(Chart.getCategoryAxis(chart.getTypicalRenderType())
//                        ,new JSONClass().set("categories",aryCategory));
//        }
//        if(chart.getDatas() != null)
//        {
//            JSONArray aryDatas=new JSONArray();
//            options.set("series",aryDatas);
//            for(Series ds : chart.getDatas())
//            {
//                if(ds == null || ds.size() < 1)
//                {
//                    continue;
//                }
//                JSONClass clsDs=new JSONClass();
//                clsDs.set("type",getRenderType(ds.getRenderType())
//                    ,"name",ds.getTitle());
//                JSONArray dataAry=new JSONArray();
//                clsDs.set("data",dataAry);
//                for(Point pt : ds.getValues())
//                {
//                    dataAry.add(pt.getValue());
//                }
//                aryDatas.add(clsDs);
//            }
//        }
//        return Algorithms.replaceStringByName(TEMPLAT,"GUID",guid,"CONTENT",options.toJSON(true));
//    }
//
//    private static String getRenderType(RenderType t)
//    {
//        switch(t)
//        {
//            case Bar:
//            case Column:
//            case Line:
//            case Pie:
//            case Area:
//            case Doughnut:
//
//            case StackedColumn:
//            case StackedColumn100:
//            case StackedBar:
//            case StackedBar100:
//            case StackedArea:
//            case StackedArea100:
//
//            case Bubble:
//            case Point:
//            case Funnel:
//            case Funnel100:
//            case CandleStick:
//            case Stock:
//                return t.name().toLowerCase();
//            case Unknown:
//            default:
//                return null;
//        }
//    }
//
//    public static void main(String[] argvs)
//    {
//        Chart c = new Chart("Test");
//        c.addCategory("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
//            .addData(new Series(RenderType.Column,"Ca",29.9,71.5,106.4,129.2,144.0,176.0,135.6,148.5,216.4,194.1,95.6,54.4))
//            .addData(new Series(RenderType.Line,"Cwa",29.9,71.5,106.4,129.2,144.0,176.0,135.6,148.5,216.4,194.1,95.6,54.4));
//        System.out.println(toHtml(c,"container"));
//    }

}
